<?php
namespace blog;

use \Sy;

const BVER = '1.0';

date_default_timezone_set('PRC');

if (!isset($_SERVER['REQUEST_TIME'])) {
	$_SERVER['REQUEST_TIME'] = time();
}
/**
 * 自动建立多级目录
 * @param string $dir
 */
function mkdirs($dir) {
	if (is_dir($dir)) {
		return;
	}
	$updir = substr($dir, 0, strrpos($dir, '/'));
	if (!is_dir($updir)) {
		mkdirs($updir);
	}
	mkdir($dir, 0777);
}

/*
 * 使用curl抓取远程内容
 * @param string $url 地址
 * @param array $data 附加属性
 * @param array $data[header] 发送的HTTP头信息
 * @param array $data[cookie] 发送的Cookie
 * @param array $data[post] POST方式提交的数据
 * @return string
*/
function curl_get ($url, $data = []) {
	$ch = curl_init();
	curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
	curl_setopt($ch, CURLOPT_URL, $url);
	curl_setopt($ch, CURLOPT_HEADER, 0);
	curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
	if (substr(strtolower($url), 0, 5) === 'https') {
		curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
		curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
	}
	if (isset($data['header'])) {
		curl_setopt($ch, CURLOPT_HTTPHEADER, $data['header']);
	}
	if (isset($data['cookie'])) {
		curl_setopt($ch, CURLOPT_COOKIE, $data['cookie']);
	}
	if (isset($data['post'])) {
		curl_setopt($ch, CURLOPT_POST, 1);
		curl_setopt($ch, CURLOPT_POSTFIELDS, $data['post']);
	}
	$result=curl_exec($ch);
	@curl_close($ch);
	return $result;
}
/**
 * 获取随机字符串
 * @param int $length 长度
 * @param boolean $a 是否包括易混淆的字符串（用于验证码）
 * @return string
 */
function getRandStr ($length, $a = TRUE) {
	if ($a) {
		$str = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
	} else {
		$str = 'abcdefghjkmnpqrstwxyzABCDEFGHJKLMNPQRSTWXY3456789';
	}
	while (strlen($str) < $length) {
		$str .= $str;
	}
	$str = str_shuffle($str);
	return substr($str, 0, $length);
}
/**
 * 生成临时文件名
 * @param string $ext 扩展名
 * @return string
 */
function getTempName($ext = 'tmp') {
	$dir = Sy::$appDir . 'data/tmp';
	mkdirs($dir);
	return $dir . '/' . uniqid(getRandStr(5)). '.' .$ext;
}
function clearTempFiles() {
	$dir = Sy::$appDir . 'data/tmp';
	if (!is_dir($dir)) {
		return TRUE;
	}
	$dh = opendir($dir);
	while ($file = readdir($dh)) {
		if ($file !== '.' && $file !== '..') {
			@unlink($dir . '/' . $file);
		}
	}
	closedir($dh);
	return TRUE;
}